/**
 * 
 */
package com.whf15.o2o.service.impl;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.whf15.o2o.cache.JedisUtil;
import com.whf15.o2o.dao.HeadLineDao;
import com.whf15.o2o.entity.Area;
import com.whf15.o2o.entity.HeadLine;
import com.whf15.o2o.exceptions.AreaOperationException;
import com.whf15.o2o.service.HeadLineService;

/**   
* 项目名称：o2o   
* 类名称：HeadLineServiceImpl   
* 类描述：   
* 创建人：whfo   
* 创建时间：2021年7月29日 上午10:17:26   
* @version        
*/
@Service
public class HeadLineServiceImpl implements HeadLineService{
	@Autowired
	private HeadLineDao headLineDao;
	@Autowired
	private JedisUtil.Keys jedisKeys;
	@Autowired
	private JedisUtil.Strings jedisStrings;
	
	
	private static Logger logger = LoggerFactory.getLogger(HeadLineServiceImpl.class);
	/**
	* 方法描述：
	* @author whfo 
	* @date 2021年8月30日 下午12:45:38 
	* @version 
	*/
//	@Override
//	public List<HeadLine> getHeadLineList(HeadLine headLineCondition) {
//		//定义redis的key前缀
//		String key= HLLISTKEY;
//		//定义接受对象
//		List<HeadLine> headLineList = null;
//		//定义jackson数据转换操作类
//		ObjectMapper mapper = new ObjectMapper();
//		//拼接出redis的key
//		if(headLineCondition != null && headLineCondition.getEnableStatus()!=null) {
//			key = key + "_" + headLineCondition.getEnableStatus();
//		}
//		//判断key是否存在
//		if(!jedisKeys.exists(key)){
//			//如果不存在，则从数据库中取出相应数据
//			headLineList = headLineDao.queryHeadLine(headLineCondition);
//			//将相关的实体 类转换成string，存入redis里面对应的key中
//			String jsonString;
//			try {
//				 jsonString = mapper.writeValueAsString(headLineList);
//			} catch (JsonProcessingException e) {
//				e.printStackTrace();
//				logger.error(e.getMessage());
//				throw new AreaOperationException(e.getMessage());
//			}
//			jedisStrings.set(key, jsonString);
//		}else {
//			//若存在则直接congredis里面取出相应的数据
//			String jsonString = jedisStrings.get(key);
//			//指定要将string转换成的集合类型
//			JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, Area.class);
//			try {
//				//将相关key对应的value里的string转换成对象的实体类集合
//				headLineList = mapper.readValue(jsonString, javaType);
//			} catch (JsonParseException e) {
//				e.printStackTrace();
//				logger.error(e.getMessage());
//				throw new AreaOperationException(e.getMessage());
//			} catch (JsonMappingException e) {
//				e.printStackTrace();
//				logger.error(e.getMessage());
//				throw new AreaOperationException(e.getMessage());
//			} catch (IOException e) {
//				e.printStackTrace();
//				logger.error(e.getMessage());
//				throw new AreaOperationException(e.getMessage());
//			}
//		}
//		return headLineList;
//	}
	
	
	/**
	* 方法描述：根据查询条件获取
	* 创建人：whfo   
	* 创建时间：2021年7月29日 上午10:19:00
	* @version 
	*/
	@Override
	public List<HeadLine> getHeadLineList(HeadLine headLineCondition) throws IOException {
		// TODO Auto-generated method stub
		return headLineDao.queryHeadLine(headLineCondition);
	}
	
	

}
